/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package skv.db.daten.entities;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import skv.db.iface.DbHandler;
import skv.db.abst.SkvEntity;

/**
 * Stellt die Schulklassen Tabelle dar.
 * @author Alex
 */
public class Schulklasse extends SkvEntity{
    private String Bezeichnung;

    @Override
    public String toString() {
        return getBezeichnung();
    }
    
    

    public Schulklasse(int id, DbHandler dbh) {
        
        this.dbh = dbh;
        this.id = id;
        getMyData();
    }

    public Schulklasse(String Bezeichnung, DbHandler dbHandler) {
        
        this.Bezeichnung = Bezeichnung;
        this.dbh = dbHandler;
        create();
    }





    public String getBezeichnung() {
        return Bezeichnung;
    }

    public void setBezeichnung(String Bezeichnung) {
        this.Bezeichnung = Bezeichnung;
        update();
    }

    @Override
    public void update() {
        dbh.doQuery("UPDATE  `skv`.`schulklasse` SET  "
                + "`skName` =  '"+this.getBezeichnung()+"' WHERE  `schulklasse`.`skID` ="+this.getId()+";");
    }

    @Override
    public void getMyData() {
        ResultSet rs = dbh.doQuery("SELECT * FROM schulklasse WHERE skID = " + this.getId());
        try {
            rs.next();
            this.Bezeichnung = rs.getString("skName");
            rs.close();
        } catch (SQLException ex) {
            Logger.getLogger(Schulklasse.class.getName()).log(Level.SEVERE, null, ex);
        }
        
    }

    @Override
    public void create() {
     if(isUnique()){
        dbh.doQuery("INSERT INTO `skv`.`schulklasse` (`skID`, `skName`) VALUES (NULL, '"+this.getBezeichnung()+"');");
        this.getLastInsertID();
        }
    }

    @Override
    public boolean isUnique() {
        try {
            ResultSet rs = dbh.doQuery("SELECT * FROM schulklasse WHERE skName = '" + getBezeichnung() +"'");
            rs.last();
            return rs.getRow() < 1 ;//Nicht Vorhanden(true) oder Vorhanden(false)
        } catch (SQLException ex) {
            Logger.getLogger(Schulklasse.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }
    }

    @Override
    public void delete() {
        ResultSet rs = dbh.doQuery("DELETE FROM `skv`.`schulklasse` WHERE `skv`.`schulklasse`.`skID`="+this.id);
        
    }
    
}
